<?php

namespace app\common\model;

use think\Model;

class Base extends Model
{

    // 字段验证规则
    //protected $validate = true;

    // 是否需要自动写入时间戳 如果设置为字符串 则表示时间字段的类型
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected $createTime = 'created_at';

    protected $updateTime = 'updated_at';

    // 时间字段显示格式 时间字段取出后的默认时间格式
    protected $dateFormat = 'U'; //'Y/m/d';

    // 设置返回数据集的对象名
    protected $resultSetType = '\think\model\Collection';


    // 自定义初始化
//    protected function initialize()
//    {
//        // 需要调用`Model`的`initialize`方法
//        parent::initialize();
//        // TODO:自定义的初始化
//    }

    // 模型初始化
    protected static function init()
    {
        //TODO:初始化内容
    }

    /**
     * Query执行后的操作
     * @param $data
     */
    public function afterQuery($data)
    {
        //
    }

    public static function _after_insert($data)
    {
        //
    }

    public static function _after_update($data)
    {
        //
    }

    public static function _after_delete($data)
    {
        //
    }

    protected function getCreatedAtAttr($date)
    {
        if (!$date) {
            return '';
        }
        return date('Y-m-d H:i:s', $date);
    }

    protected function getUpdatedAtAttr($date)
    {
        if (!$date) {
            return '';
        }
        return date('Y-m-d H:i:s', $date);
    }

    /**
     * 格式化列表数据
     */
    public static function formatDatas($list, $params = '')
    {
        foreach ($list as &$item) {
            $item = self::formatItem($item, $params);
            //$item = (new self())->formatItem($item, $params); // 可以调用非静态方法
        }

        return $list;
    }

    /**
     * 格式化单个数据
     */
    public static function formatItem($item, $params = '')
    {
        if (!$item) {
            return '';
        }

        return $item;
    }

    /**
     * 删除
     */
    public static function doDelete($id)
    {
        return self::where('id', $id)->delete();
    }
}
